<?php
class PeopleVacunasController extends AppController {

	var $name = 'PeopleVacunas';
	var $uses = array('PeopleVacuna','Person','Vacuna');

    function beforeFilter () {
        parent::beforeFilter();

		// Aplico el Layout segun la Vista o si es AJAX
		if ($this->RequestHandler->isAjax()) {
			$this->layout = 'ajax';
		}else{
			// Cambio la Vista por la del Rol
			$this->layout = strtolower($this->Session->read('VistaActual'));
		}
    }
    
	function index($id_paciente = null, $archivados = null) {
		$this->PeopleVacuna->recursive = 0;

		if(!$archivados){
			$PeopleVacunas = $this->PeopleVacuna->find('all', array(
							'conditions' => array(
												'PeopleVacuna.client_id' => $this->Session->read('ClientesUsuarioLogueado.id'),
												'PeopleVacuna.person_id' => $id_paciente,
												'NOT' => array ('PeopleVacuna.staterecord_id' => array('2','3'))
											)
			) );
		}else{ // Para mostrar tambien los registros ARCHIVADOS
			$PeopleVacunas = $this->PeopleVacuna->find('all', array(
							'conditions' => array(
												'PeopleVacuna.client_id' => $this->Session->read('ClientesUsuarioLogueado.id'),
												'PeopleVacuna.person_id' => $id_paciente,
												'NOT' => array ('PeopleVacuna.staterecord_id' => array('2'))
											)
			) );
		}


		$this->set('archivados', $archivados);
		$this->set('peopleVacunas', $PeopleVacunas);
		$this->set('id_paciente', $id_paciente);
		$this->layout = 'ajax';
	}

	function add($id_paciente = null) {
		if (!empty($this->data)) {
			$this->PeopleVacuna->create();

			// Seteo datos que no vienen del Formulario
			$this->PeopleVacuna->set(array(
				'client_id' => $this->Session->read('ClientesUsuarioLogueado.id'),
				'user_id' => $this->Auth->user('id'),
			));

			if ($this->PeopleVacuna->save($this->data)) {
				$this->Session->setFlash(__('Se ha asociado la Vacuna al paciente', true));
				$this->redirect('/people/view/'.$this->data['PeopleVacuna']['person_id'].'/10');
			} else {
				$this->Session->setFlash(__('No se pudo asociar la Vacuna al paciente. Por favor, intente nuevamente.', true));
			}
		}

		if (!$id_paciente) {
			exit;
		}

		$people = $this->Person->find('list', array(
						'conditions' => array('Person.id' => $id_paciente),
						'fields' => array('Person.id', 'Person.full_name')
		) );

		$vacunas = $this->PeopleVacuna->Vacuna->find('list');
		$this->set('id_paciente', $id_paciente);
		$this->set(compact('people', 'vacunas'));
	}

	function archivar($id = null, $id_paciente = null, $estado = null) {
		if (!$id) {
			$this->Session->setFlash(__('Vacuna no valida', true));
			$this->redirect('/dashboards');
		}

		if (!$id_paciente) {
			$this->Session->setFlash(__('Paciente no valido', true));
			$this->redirect('/dashboards');
		}

		if (!$estado) {
			$this->Session->setFlash(__('Estado no valido', true));
			$this->redirect('/dashboards');
		}

		$this->PeopleVacuna->id = $id;
		$this->PeopleVacuna->set(array(
			'staterecord_id' =>  $estado,
			'user_id' => $this->Auth->user('id'),
		));

		if ($this->PeopleVacuna->save()) {
			$this->Session->setFlash(__('La Vacuna fue procesada.', true));
			$this->redirect('/people/view/'.$id_paciente.'/10');
		}
		$this->Session->setFlash(__('La Vacuna no pudo ser procesada', true));
		$this->redirect('/people/view/'.$id_paciente.'/10');
	}
}
?>